/*
 * @Author: lhl 1079161148@qq.com
 * @Date: 2024-04-04 09:55:24
 * @LastEditors: lhl 1079161148@qq.com
 * @LastEditTime: 2024-04-06 16:42:15
 * @FilePath: \net-cloud-music\vite.config.ts
 * @Description: vite配置
 */
import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
// import VueDevTools from 'vite-plugin-vue-devtools'
// vant 按需加载
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { VantResolver } from '@vant/auto-import-resolver'
// 兼容低版本浏览器 Legacy 构建模式主要用于支持旧版浏览器，如果你的项目不需要支持旧版浏览器或已经使用现代构建模式进行开发，那么无需安装和配置 @vitejs/plugin-legacy 插件
import legacy from '@vitejs/plugin-legacy'

// https://vitejs.dev/config/
export default defineConfig({
  // 打包后需要配置
  base: './',
  plugins: [
    vue(),
    vueJsx(),
    // VueDevTools(),
    AutoImport({
      resolvers: [VantResolver()]
    }),
    Components({
      resolvers: [VantResolver()]
    }),
    legacy({
      targets: ['defaults', 'not IE 11']
    })
  ],
  css: {
    preprocessorOptions: {
      // less全局变量
      less: {
        modifyVars: {
          hack: 'true; @import "@/assets/variable.less"'
        },
        javascriptEnabled: true
      }
    }
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  // 服务配置
  server: {
    // 本机ip 方便手机预览 同一个WiFi 下即可
    host: '192.168.1.103',
    // 端口号
    port: 8999,
    // 自动在浏览器打开
    open: true,
    // https: true, // 是否开启 https
    // http2: true, // 建议使用 http2, 是否开启 https
    proxy: {
      // 带选项写法：http://localhost:8999/api/bar -> http://localhost:3000/bar
      '/api': {
        target: 'http://localhost:3000/',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  },
  build: {
    // 生产环境移除 console
    terserOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true
      }
    }
  }
})
